package listiterface;

import MysingleList.MySingleList;
import linkedlist.MyLinkedList;

/**
 * @Author:JIAMIN
 * @Description:单链表常用方法的接口
 * @Date 2025/10/12 16:57
 */


//为什么用接口：使用接口的话，之后如果还有其他的数据结构也想实现这些方法的话，可以直接实现这个接口即可
//在Java中接口中的方法默认都是public abstract的，所以这里不用写public修饰符
public interface IList {
    //头插法
    void addFirst(int data);

    //尾插法
    void addLast(int data);

    //任意位置插入，第一个数据节点为的索引为0
    void addIndex(int index,int data);

    //查找是否包含关键字key是否在单链表中
    boolean contains(int key);

    //删除单链表中第一次出现的指定元素key的节点
    void remove(int key);

    //删除指定元素所在的所有节点
    void removeAllKey(int key);

    //返回单链表的长度
    int size();

    //清空单链表
    void clear();

    //打印单链表
    void display();
    //有参的display方法不写进接口里，因为在这里有参的display方法的参数是链表类的内部类的节点内部类，但是节点的内部类是不能被外部访问的，所以会出现报错，这里就不方便把有参的display方法打印出来


}